package com.mfl.service;

import com.mfl.common.PageResult;
import com.mfl.pojo.dto.UserDTO;
import com.mfl.pojo.dto.UserLoginDTO;
import com.mfl.pojo.dto.UserPageQueryDTO;
import com.mfl.pojo.entity.User;
import com.mfl.pojo.vo.UserVO;

import java.util.List;

public interface UserService {
    /**
     * 新增用户
     * @param userDTO
     */
    void insert(UserDTO userDTO);

    /**
     * 分页查询用户信息
     * @param userPageQueryDTO
     * @return
     */
    PageResult pageQuery(UserPageQueryDTO userPageQueryDTO);

    /**
     * 修改用户状态
     * @param status
     * @param id
     */
    void updateStatus(Integer status, Integer id);

    /**
     * 批量删除用户
     * @param ids
     */
    void batchDelete(List<Integer> ids);

    /**
     * 根据id查询用户信息
     * @param id
     * @return
     */
    UserVO getUserById(int id);

    /**
     * 修改用户信息
     * @param userDTO
     */
    void update(UserDTO userDTO);

    /**
     * 用户登录
     * @param userLoginDTO
     * @return
     */
    User login(UserLoginDTO userLoginDTO);

    /**
     * 修改用户信息（用户端，不包含密码）
     * @param userDTO
     */
    void updateUserInfo(UserDTO userDTO);

    /**
     * 校验密码
     * @param userDTO
     * @return
     */
    Boolean checkPwd(UserDTO userDTO);

    /**
     * 修改密码
     * @param userDTO
     */
    void updatePwd(UserDTO userDTO);
}
